<?php

namespace App\Http\Controllers\Admin;

use App\Model\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
// use App\Org\code\Code;
use Gregwar\Captcha\CaptchaBuilder; 
use Gregwar\Captcha\PhraseBuilder;
// use Illuminate\Support\Facades\Validator;
// use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\Hash;

class LoginController extends Controller
{
    //后台登录页面
    public function login()
    {
    	return view('admin.login');
    }

    //验证码
    // public function code()
    // {
    // 	$code = new Code();
    // 	return $code->make();
    // }

    // 验证码生成
	public function captcha($tmp)
	{
	    $phrase = new PhraseBuilder;
	    // 设置验证码位数
	    $code = $phrase->build(6);
	    // 生成验证码图片的Builder对象，配置相应属性
	    $builder = new CaptchaBuilder($code, $phrase);
	    // 设置背景颜色
	    $builder->setBackgroundColor(220, 210, 230);
	    $builder->setMaxAngle(25);
	    $builder->setMaxBehindLines(0);
	    $builder->setMaxFrontLines(0);
	    // 可以设置图片宽高及字体
	    $builder->build($width = 100, $height = 40, $font = null);
	    // 获取验证码的内容
	    $phrase = $builder->getPhrase();
	    // 把内容存入session
	    \Session::flash('code', $phrase);
	    // 生成图片
	    header("Cache-Control: no-cache, must-revalidate");
	    header("Content-Type:image/jpeg");
	    $builder->output();
	}

	// 登录信息验证
	public function doLogin(Request $request)
	{
		// 接收表单数据
		$data = $request->except('_token');
		// dd($data);

		// 验证规则
		// $rule = [
		// 	'username' => 'required|between:4,20',
		// 	'password' => 'required|between:6,12|alpha_dash',
		// ];

		// 进行表单验证
		// $validator = Validator::make($data, $rule);

        // if ($validator->fails()) {
            // return redirect('admin/login')
                        // ->withErrors($validator)
                        // ->withInput();
        // }

        // 判断验证码输入是否正确
        if (strtolower($data['captcha']) != strtolower(session('code'))) {
        	# code...
        	return redirect('admin/login');
        }

		// 验证管理员信息是否存在
		$user = User::where('user_name',$data['username'])->first();
		if (!$user) {
			# code...
			return redirect('admin/login');//->with('errors','用户名错误!!!');
		}
		// 验证密码是否一致
		if (!Hash::check($data['password'],$user->password)) {
			# code...
			return redirect('admin/login');//->with('errors','密码错误!!!');			
		}

		// 将登录信息存入session
		session()->push('user', $user);

		// 跳转至后台首页
		return redirect('admin/index');
	}

	// 后台首页显示
	public function index()
	{
		//$user = User::where('user_name',session('user')->['username'])->first();

		// dd($user);
		$user = session('user')[0]->user_name;
		return view('admin.index',compact('user'));
	}

	// 后台欢迎页面
	public function welcome()
	{
		return view('admin.welcome');
	}

	// 退出后台登录
	public function logout()
	{
		session()->flush();

		return redirect('admin/login');
	}

	// 无权访问提示
	public function noaccess()
	{
		return view('errors.noaccess');
	}
}
